From: Keir Fraser Date: Thu, 25 Mar 2010 07:41:55 +0000 (+0000) Subject: Fix gdbserver-xen support on older kernels. X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~12479 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/success//%22http:/www.example.com/cgi/success/?a=commitdiff_plain;h=8c2f103b2230456ffc00497d9b74f5725e28afe9;p=xen.git Fix gdbserver-xen support on older kernels. The xc_ptrace API relies on errno for passing success/failure indication back to callers. However, mapping operations that fall back on legacy APIs may leave errno set to a non-zero result even thought the operation is successful. This patch resets errno after successful map operations so that xc_ptrace doesn't inadvertently return a failure. Signed-off-by: Justin Gibbs --- diff --git a/tools/libxc/xc_ptrace.c b/tools/libxc/xc_ptrace.c index 725a022339..e91ac56da6 100644 --- a/tools/libxc/xc_ptrace.c +++ b/tools/libxc/xc_ptrace.c @@ -193,6 +193,13 @@ map_domain_va( if (map == NULL) return NULL; + /* + * Due to the use of API fallback code in libxc, errno may + * be clobberred during successful operations. Since the caller + * of xc_ptrace is depending on errno for return status, clear + * errno here. + */ + errno = 0; return map + (va & ~PAGE_MASK); }